import java.sql.SQLOutput;

public class Main {
    public static void main(String[] args) {

        System.out.println("Hello world!");
        Boolean flg=true;
        //java当中，真假只有true和false，仅仅只有这两种，结果
        //boolean不能和任何类型进行转换
        //Boolean没有明确规定占用几个字节
        //有的是它占据一个字节，有的说占据一个比特位

        //Boolean

        //byte
        //short
        //int_______________Initeger
        //long
        //float
        //double
        //char_______________Character
        //包装有什么用，先感受感受

        //
        //类型转换————java是一个强类型的编程语言
        //报错，警告
        int a=10;
        long b=100L;
        //a=b;//__你在干嘛，把八个给四个——强类型体现
        //你这种情况就编译失败了
        //强制类型转换——程序员对强转负责，丢失数据，我是认可的
        a=(int)b;
        b=a;//但你翻过类就行，虽然不对应，但是任然能放得下

        //自动类型转换——小的转换为大的————隐式类型转换
        //小的给大的可以，只是放的更多了，但原本的不影响
        //强制类型转换————显式类型转换

        //byte c=256;//c根本村放不下256；
        byte c2=127;
        //java当中，对于字面值的直接赋值是允许的，前提是：没有超过我的表示范围
        //但是当超过表示范围后，就会检查
        //放不进去，我把你看作整形，

        //尽量不要超过，我们的表示范围——
        boolean flg2=true;
        //a=(int)flg2;
        //这种太荒谬了，你把真假使用数字表示，这合理吗？？？？？？？
        //不相干的类型强转也不行
        //数据类型小的，会被提升为类型大的
        //
        int a1=10;
        long b1=20;
        int c=(int)(a+b);
        //两个相加的时候，会把类型小的转换为类型大的——
        //然后再把八个字节的付给四个字节的—，会有截断——一定要强转

        byte b4=125;
        byte b2=12;
        byte b3=(byte)(b1+b2);
        //会把小于int的转换为int计算——————也就是整型提升,
        //我可以利用他会进行整型提升，然后用int类型来运算————这样做是为了在硬件上更方便

        //字符串类型——

        //存在即是合理——-适当情况下，是可以省空间的
        //在C语言当中没有字符串这种类型——
        //字符数组——来存放字符串

        //
        String str="董李阳";
        //包装类只是针对基本数据类型对应的类类型
        //基本类型就只有前面学习的八中

        //
        char [] arr;
        //可以把整数转换为字符串

        //可以把字符串转换为整数

        int x=20;
        String s1=String.valueOf(x);//调用String的库方法——

        String s2=a+"";//此时这个加号就是拼接的意思
        //拼接
        //也可以空拼接——就相当于转化为字符串
        //双引号当中包含若干个字符，
        System.out.println();
        //说一说头头道道，
        //什么时候拼接的字符串，
        //注意先后顺序
        String str4="1009";
        int ret=Integer.valueOf(str4);
        System.out.println(ret);

        //字符串转整数，和整数转字符串——
        //字节大小，

        //有包装类概念
        //有字符串类型

        //特殊的boolean类型
    }
    public static void main1(String[] args) {

        //算数运算符
        //加减乘除——取余——取整
        System.out.println(5/2);
        System.out.println((float)5/2);//5.0/2
        System.out.println(5/(float)2);  // 5/2.0
        System.out.println((float)(5/2));  //5/2之后强转
        //System.out.println((float) 5/2);
        System.out.println(10%3);
        System.out.println(10%-3);
        System.out.println(-10%3);
        System.out.println(-10%-3);
        System.out.println(11.5%2);//甚至Java里面还可以给小数求余数
        //余数四1.5.
        //C语言是根本不能的
        System.out.println(10/0);
//        写代码时候没报错，但是运行时候就会出错，
//        没有规定取出来，打印几位
//
//        我们可以看到------异常————会有专门的课件讲解
//
//        异常的种类————算数异常  10/0，分母为0的时候，zero
//
//        怎么去快速注释：
//        CTRL shift+/
        //怎么注释的怎么取消
        // 5 / 2 ————可以认为发生了整型提升
        //我们这个地方只算一次
        //做除法和取模时候，右操作数不能为0；
        //加减乘除，求余数——————还有没有什么问题
        //增量运算符
        //+= -= %= /=
        //
        //运算符的特点-——会帮我们进行强制类型转换

        //c+=d;
//        c=c+d;
//如果c和d的类型不同，那么c=c+d直接报错，但是+=直接帮你做事，

    int a=10;
    a++;
//可以写为
        a=a+1;
        ++a;
//自增和自减运算符
        //关系运算符
        //等不等
        //大不大
                //小不小
//和C语言中是一样的，一摸一样
        //
        //可以去进行

        //布尔表达式1&&布尔表达式2
        //boolean表达式
        //同时满足则为真————其余全部为假
        //一假则假。


        //逻辑！
        //       ！布尔表达式
        //逻辑或

        //Boolean

        //波尔表达式1||布尔表达式2
        //一真则是真。

        //短路求值————python里面也是有的
        //当表达式为假的时候，就不会执行表达式二了
        //
        //短路表达式————
        //python提供一种方式

        //短路求职————C语言——Java语言——python语言里面都是有的

        //短路求值
        //特殊的例子：：

        //  &  逻辑与，但是不能表示短路。虽然知道他是假的，但是我还是会去执行后面的
        //  &    |。两种符号丧失了短路的性质
        //这是和C语言里面不一样的————但我运行的时候，也会报错
        //不建议这样写代码————这是一个特殊的例子
        //
         //位运算符————二进制位

        //二进制位：0101
        //123
        String str1="董李阳";

    }
}